package util.test;

import junit.framework.TestCase;
import util.DistancesEtDirections;

/**
 * Classe de tests pour la méthode
 * {@link util.DistancesEtDirections#distanceDepuisUnPoint(int, int, int, int)}.
 * 
 * @author gnpt
 */
public class DistancesEtDirectionsTest1 extends TestCase {

	/**
	 * Premier test : la diagonale d'un carré de côté 1 vaut sqrt(2).
	 */
	public void testDistanceDepuisUnPoint1() {
		float res = DistancesEtDirections.distanceDepuisUnPoint(0, 0, 1, 1);

		assertEquals((float) Math.sqrt(2.0), res, 1 / 1000f);
	}

	/**
	 * Deuxième test : les triangles pythagoriciens.
	 */
	public void testDistanceDepuisUnPoint2() {
		float res = DistancesEtDirections.distanceDepuisUnPoint(0, 0, 3, 4);
		// 3² + 4² = 5²
		assertEquals(5f, res, 1 / 1000f);
	}

	/**
	 * Troisième test : invariance par translation.
	 */
	public void testDistanceDepuisUnPoint3() {
		float init = DistancesEtDirections.distanceDepuisUnPoint(1, 2, 3, 4);
		float deux = DistancesEtDirections.distanceDepuisUnPoint(233, 234, 235,
				236);
		assertEquals(init, deux, 1 / 1000f);
	}

}
